package com.um.jdy.common.charge.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 订单日志
 * @author 邓南辉
 * @date 2020/9/19 09:37
 */
public class OrderAction {

    @Getter
    @AllArgsConstructor
    public enum EB {

        StartChargeReq("用户请求开始充电"),
        StartChargeResp("设备回复开始充电"),
        StopChargeReq("用户请求停止充电"),
        StopChargeResp("设备回复停止充电"),
        SlipPower("功率变大跳档"),
        ChangeMaxPower("功率变大记录"),
        RestartChargeReq("跳档修改充电时长"),
        RestartChargeResp("跳档设备充电时长"),
        DeviceStopChargeReq("设备停充自主上报"),
        OrderFinish("订单结算"),
        FixOrderCharging("修复订单状态"),
        CardChargeReq("刷卡开启充电"),
        CoinChargeReq("投币开启充电"),
        CoinChargeResp("回复投币充电"),
        StartCalcCommission("开始分佣"),
        StopCalcCommission("分佣结束"),
        AdminStopChargeReq("管理员请求停止充电"),
        FullStopChargeReq("充满停止充电"),
        NotBalanceStopChargeReq("余额用完停止充电"),
        CancelForUnPay("订单未支付，取消订单");

        private String value;

    }


    @Getter
    @AllArgsConstructor
    public enum PB {
        StartRentReq("用户请求开始出柜"),
        StartRentReqFailed("用户请求开始出柜失败"),
        StartRentResp("设备回复开始出柜"),
        DeviceReturnReq("设备自动上报归还"),
        CreateOrderByDepositPay("押金支付成功，开始创建订单"),
        CreateOrderByWxPayScore("微信支付分授权成功，开始创建订单"),
        CreateOrderByAliPayScore("支付宝信用分授权成功，开始创建订单"),
        WXPaySuccess("微信支付订单成功"),
        AliPaySuccess("支付宝支付订单成功"),
        UpdateDepositPayed("修改押金订单状态为已支付"),
        DeviceOpenSuccess("出柜成功"),
        DeviceOpenFail("出柜失败"),
        DeviceTimeout("设备超时不回复"),
        RetuenDePositOrder("开始退回/提现押金"),
        ReturnDepositOrderSuccess("开始退回/提现押金成功"),
        RetuenDePositOrderFail("开始退回/提现押金失败"),
        QueryPortStatus("查询指定端口状态"),
        ConfirmOrderSuccess("确认订单出柜成功"),
        ConfirmOrderFail("确认订单出柜失败"),
        TimeAndCharge("计时&计费"),
        OverAmountAutoStop("达到封顶金额，自动结束"),
        OrderHasFinished("订单已结束，无需重复结算订单"),
        DepositWithholding("自动使用押金扣除充电金额"),
        DeviceStatusReq("设备端口状态上报充电宝已归还"),
        WxscorePay("微信支付分支付"),
        StartCalcCommission("开始分佣"),
        StopCalcCommission("分佣结束"),
        ;

        private String value;

    }

    @Getter
    @AllArgsConstructor
    public enum EBox {

        StartChargeReq("用户请求开始充电"),
        StartChargeResp("设备回复开始充电"),
        StopChargeReq("用户请求停止充电"),
        StopChargeResp("设备回复停止充电"),
        SlipPower("功率变大跳档"),
        RestartChargeReq("跳档重新下发充电"),
        RestartChargeResp("跳档设备回复下发"),
        DeviceStopChargeReq("设备停充自主上报"),
        OrderFinish("订单结束，开始占位"),
        FixOrderCharging("修复订单状态"),
        CardChargeReq("刷卡开启充电"),
        CoinChargeReq("投币开启充电"),
        CoinChargeResp("回复投币充电"),
        OpenDoorReq("请求打开仓门"),
        OpenDoorResp("设备回复打开仓门"),
        StartCloseDoorReq("放好电池开始充电，并并闭仓门"),
        EndCloseDoorReq("结束充电拿走电池, 并关闭仓门"),
        PayOrderAndOpenDoor("支付订单并打开仓门"),
        PortChargeStatusUpdate("仓口充电状态更新")
        ;
        private String value;

    }

    @Getter
    @AllArgsConstructor
    public enum EV {

        StartChargeReq("用户请求开始充电"),
        StartChargeResp("设备回复开始充电"),
        StopChargeReq("用户请求停止充电"),
        StopChargeResp("设备回复停止充电"),
        DeviceStopChargeReq("设备停充自主上报"),
        OrderStop("订单结束"),
        OrderConfirm("订单确认"),
        OrderFinish("订单结算"),
        FixOrderCharging("修复订单状态"),
        CardChargeReq("刷卡开启充电"),
        StartCalcCommission("开始分佣"),
        StopCalcCommission("分佣结束"),
        StartPlace("开始占位"),
        StopPlace("结束占位"),
        TimeAndCharge("计时&计费"),
        UpdateBalance("更新订单余额")
        ;

        private String value;

    }

    @Getter
    @AllArgsConstructor
    public enum Common {

        PushForChargeStop("充电结束：推送小程序模板消息"),

        ;

        private String value;

    }

    @Getter
    @AllArgsConstructor
    public enum Baofu {

        BaofuBalanceIncrease("宝付账户加值"),
        BaofuBalanceDecreased("宝付账户减值"),
        BaofuWithdraw("宝付提现"),
        ;

        private String value;

    }
}
